package com.train.common.annotation;

import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;

/**
 * 资源URL注解
 * 用于标记需要在响应给前端前转换为临时URL的字段
 * 被标记的字段应该存储的是objectName，而不是完整的URL
 *
 * @author train
 */
@Target(ElementType.FIELD)
@Retention(RetentionPolicy.RUNTIME)
public @interface ResourceUrl {

    /**
     * 资源类型
     * 用于区分不同类型的资源，如视频、图片等
     * 可选值：video/course-video, cover/course-cover, episode-cover, action-video, action-cover, post-image
     */
    String resourceType() default "";

    /**
     * URL过期时间（分钟）
     * 默认30分钟
     */
    int expires() default 30;

    /**
     * 是否跳过转换
     * 默认为false，即不跳过，需要转换
     */
    boolean skip() default false;
}